package com.hdsx.restful.glzt.roadline.lxxx.service;

import java.util.List;
import java.util.Map;

import com.hdsx.restful.glzt.roadline.lxxx.bean.Xzqh;
import com.hdsx.restful.glzt.structure.ql.bean.StatisticalResult;
import com.hdsx.restful.util.Dao;
import com.hdsx.restful.glzt.roadline.lxxx.bean.Line;
/*
 * 	现在查询空间数据路线的是线用mybatis查询属性数据，通过前端定位再次请求后台查询单条数据的空间信息，
 * 	但是对于点的方式是批量查询空间信息！参考方式如下
 * 		Map<String,Object> parameter=new HashMap<String,Object>();
		parameter.put("begin",begin);
		parameter.put("end", end);
		parameter.put("lxmc",lxmc);
		List<Lx> list=lxmapper.queryByLxmc(parameter);查询属性数据
		for(Lx lx:list)
		{
			IGeometry shape=selectShape("ID= '"+lx.getId()+"'");//查询空间数据
			lx.setShape(shape);
		}
		return list;
*/
import com.hdsx.restful.glzt.roadline.lxxx.bean.Lx;
import com.hdsx.restful.glzt.roadline.lxxx.bean.LxdmMapLxmc;
import com.hdsx.restful.glzt.roadline.lxxx.bean.Znode;

public interface LxService {
	/**
	 * 根据id查询空间数据数据.
	 *
	 * @param id 唯一标示
	 * @return 如果存在返回：lineString，否则返回:null
	 */
	List<Dao> queryLineString(String id);
	
	int queryLxCountByParameter(String xzqhbm,String lxdm);
	
	List<Xzqh> queryLxByParameter(String xzqhbm,String lxdm,int begin,int end);
	
	List<Lx> queryList(String lxdm);
	
	List<Lx> statisticsJsdjByLxdm(String lxdm);
	
	List<Lx> statisticsJsdjByXzqhbm(String xzqhbm);
	
	List<Lx> statisticsXzdjByXzqhbm(String xzqhbm);
	
	List<Lx> statisticsCdtzByXzqhbm(String xzqhbm);
	
	List<Lx> statisticsCdtzByLxdm(String lxdm);
	String queryLine(String id);
	/**
	 * 根据id查询lx数据.
	 *
	 * @param id 唯一标示
	 * @return 如果存在返回：lx，否则返回:null
	 */
	Lx getById(String id);
	
	/**
	 * 将新的lx数据添加到数据库.
	 *
	 * @param crk 新的lx数据
	 * @return 如果插入成功返回：true；否则返回：false
	 */
	boolean addLx(Lx lx);
	
	/**
	 * 更新制定的lx数据.
	 *
	 * @param lx 待更新lx数据
	 * @return 如果更新成功返回：true；否则返回：false
	 */
	boolean updateLx(Lx lx);
	
	/**
	 * 根据id删除lx.
	 *
	 * @param id 唯一标示
	 * @return 如果删除成功返回：true；否则返回：false
	 */
	boolean deleteById(String id);
	
	int queryLxCountBylxdm(String lxdm);
	
	List<Lx> queryLxBylxdm(String lxdm,int begin,int end);
	
	int queryLxCountByLxmc(String lxmc);
	
	List<Lx> queryLxByLxmc(String lxmc,int begin,int end);
	
	int queryLxCountByXzqhbm(String xzqhbm);
	
	List<Xzqh> queryLxByXzqhbm(String xzqhbm,int begin,int end);
	
	StatisticalResult countLdByParameter(Map<String,Object> map);
	
	StatisticalResult countLxByParameter(Map<String,Object> map);
	/**
	* 联想输入
	* @param lx
	* @return
	*/
	List<LxdmMapLxmc> selectResultsByParameter(String dm, String mc);
	/**
	* 行政等级查询节点 H G S X
	* @return
	*/
	List<Znode> xzdjNode();
	
	//根据起止点桩号查询路线
	Lx queryByQzdzh(String lxdm,double qdzh,double zdzh);

	List<Xzqh> querySQH();

	List<Xzqh> queryXQH(String xzqhbm, int page, int rows);

	int queryCountXQH(String xzqhbm);
	
	Lx queryById(String id);
	
	Line ldDetail(Line param);
	
	/**
	 * 第三级数据
	 * @param line
	 * @return
	 */
	List<Line> third();
	/**
	 * 第三级下一段
	 * @param line
	 * @return
	 */
	Line thirdnext(Line line);
	
	List<String> selectName(String name);
}
